home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Leser 15 / Amiga Plus Leser CD 15.iso / Tools / Development / AmigaTalk_X / intuition / Painter.st < prev    next >
Encoding:
Text File  |  2002-03-13  |  4.4 KB  |  187 lines

  1. "----------------------------------------------------"
  2. " Painter Class implements simple graphics primitives"
  3. "----------------------------------------------------"
  4.  
  5. Class Painter :Glyph ! ownerWindow fPen bPen oPen drawMode linePattern x y !
  6. [
  7.    setAPen: pen
  8.       <primitive 200 0 ownerWindow pen>.
  9.       
  10.       fPen <- pen
  11. |
  12.    setBPen: pen
  13.       <primitive 200 1 ownerWindow pen>.
  14.       
  15.       bPen <- pen
  16. |
  17.    setOPen: pen
  18.       <primitive 200 2 ownerWindow pen>.
  19.       
  20.       oPen <- pen
  21. |
  22.    setDrawMode: mode
  23.       <primitive 200 3 ownerWindow mode>.
  24.       
  25.       drawMode <- mode
  26. |
  27.    setLinePattern: newPatternMask
  28.       <primitive 200 21 ownerWindow newPatternMask>.
  29.       
  30.       linePattern <- newPatternMask
  31. |
  32.    getPens
  33.       ^ fPen @ bPen
  34. |
  35.    getOPen
  36.       ^ oPen
  37. |
  38.    getDrawMode
  39.       ^ drawMode
  40. |
  41.    location
  42.       ^ x @ y
  43. |
  44.    ownerIs
  45.       ^ ownerWindow
  46. |
  47.    movePenTo: newPoint
  48.       <primitive 200 4 ownerWindow (newPoint x) (newPoint y)>.
  49.       
  50.       x <- newPoint x.
  51.       y <- newPoint y
  52. |
  53.    drawTo: aPoint
  54.       <primitive 200 5 ownerWindow (aPoint x) (aPoint y)>.
  55.       
  56.       x <- aPoint x.
  57.       y <- aPoint y
  58. |
  59.    drawLineFrom: fPoint to: tPoint ! xt yt !
  60.       xt <- tPoint x.
  61.       yt <- tPoint y.
  62.       
  63.       <primitive 200 6 ownerWindow (fPoint x) (fPoint y) xt yt>
  64. |
  65.    drawBoxFrom: fPoint to: tPoint
  66.       <primitive 200 7 ownerWindow (fPoint x) (fPoint y) (tPoint x) (tPoint y)>
  67. |
  68.    drawCircle: cPoint radius: r
  69.       <primitive 200 8 ownerWindow (cPoint x) (cPoint y) r>
  70. |
  71.    drawEllipse: cPoint minaxis: a maxaxis: b
  72.       <primitive 200 9 ownerWindow (cPoint x) (cPoint y) a b>
  73. |
  74.    drawPolygon: borderObj         " borderObjects are NOT necessarily Polygons! "
  75.       <primitive 200 10 ownerWindow borderObj>
  76.  
  77.       "or <primitive 187 6 ownerWindow borderObj>"
  78. |
  79.    drawPixelAt: aPoint
  80.       <primitive 200 11 ownerWindow (aPoint x) (aPoint y)>.
  81.       
  82.       x <- aPoint x.
  83.       y <- aPoint y
  84. |
  85.    drawText: text at: aPoint        " Sorry, no font control for this "
  86.       <primitive 200 19 ownerWindow text (aPoint x ) (aPoint y)>
  87. |
  88.    new: newOwnerWindow
  89.       ownerWindow <- newOwnerWindow.
  90.  
  91.       ^ self
  92. ]
  93.  
  94. "----------------------------------------------------"
  95. " Image Class implements Image graphics primitives   "
  96. "----------------------------------------------------"
  97.  
  98. Class Image :Glyph ! private ownerWindow !
  99. [
  100.    ownerIs
  101.       ^ ownerWindow
  102. |
  103.    getStartPoint ! left top !
  104.       left <- <primitive 200 14 ownerWindow 0 private>.
  105.       top  <- <primitive 200 14 ownerWindow 1 private>.
  106.       
  107.       ^ left @ top
  108. |
  109.    getImageSize ! width height !
  110.       width  <- <primitive 200 14 ownerWindow 2 private>.
  111.       height <- <primitive 200 14 ownerWindow 3 private>.
  112.       
  113.       ^ width @ height
  114. |
  115.    setOrigin: aPoint ! x y !
  116.       x <- aPoint x.
  117.       y <- aPoint y.
  118.       
  119.       <primitive 200 15 ownerWindow 0 x private>.
  120.       <primitive 200 15 ownerWindow 1 y private>
  121. |
  122.    setExtent: sizePoint ! w h !
  123.       w <- sizePoint x.
  124.       h <- sizePoint y.
  125.       
  126.       <primitive 200 15 ownerWindow 2 w private>.
  127.       <primitive 200 15 ownerWindow 3 h private>
  128. |
  129.    setImageDepth: d
  130.       <primitive 200 15 ownerWindow 4 d private>
  131. |
  132.    drawImageAt: aPoint
  133.       <primitive 200 16 ownerWindow (aPoint x) (aPoint y) private>
  134. |
  135.    setImageDataFrom: imageFile
  136.       <primitive 200 17 ownerWindow imageFile private>
  137. |
  138.    saveImageIn: imageFile
  139.       " true indicates that the Image was saved: "
  140.       ^ <primitive 200 18 ownerWindow imageFile private>
  141. |
  142.    getImageDepth
  143.       ^ <primitive 200 14 ownerWindow 4 private>
  144. |
  145.    getImagePlanePick
  146.       ^ <primitive 200 14 ownerWindow 6 private>
  147. |
  148.    getImagePlaneOnOff
  149.       ^ <primitive 200 14 ownerWindow 7 private>
  150. |
  151.    getNextImage
  152.       ^ <primitive 200 14 ownerWindow 8 private>
  153. |
  154.    setImagePlanePick: pp
  155.       <primitive 200 15 ownerWindow 6 pp private>
  156. |
  157.    setImagePlaneOnOff: po
  158.       <primitive 200 15 ownerWindow 7 po private>
  159. |
  160.    setNextImage: newNextImage
  161.       <primitive 200 15 ownerWindow 8 newNextImage private>
  162. |
  163.    grabImageFrom: windowObj startPoint: s endPoint: e ! x y w h !
  164.       x <- s x.
  165.       y <- s y.
  166.       w <- e x.
  167.       h <- e y.
  168.       
  169.       ^ <primitive 200 20 windowObj x y w h private>      
  170. |
  171.    getImageObject
  172.       ^ private
  173. |
  174.    registerTo: newWindowObject
  175.       ownerWindow <- newWindowObject
  176. |
  177.    addImage: width height: h depth: d
  178.       private <- <primitive 200 13 ownerWindow width h d>.
  179.  
  180.       ^ self
  181. |
  182.    disposeImage
  183.       <primitive 200 12 private>.
  184.       
  185.       ^ nil
  186. ]
  187.